Method and system for establishing cooperative routing in wireless networks

ABSTRACT

A system and method is presented for establishing relayed communications involving (1) sending a request message from a source node to a destination node through a plurality of intermediate nodes, (2) receiving the request message at the destination node, and (3) sending an acceptance message from the destination node to the source node through at least a subset of the intermediate nodes, wherein an intermediate node relays the request or acceptance message by receiving the message and re-transmitting the message, and wherein the intermediate node is capable of receiving the message from more than one other intermediate node.

This application is a continuation-in-part of U.S. patent application Ser. No. 11/833,113, filed Aug. 2, 2007, titled “Methods and Apparatus for Network Communication Via Barrage Relay Onto an Independent Medium Allocation”, Attorney Docket No. 020945-002610US. Which is a nonprovisional application claiming priority to U.S. Provisional Application No. 60/864,927, filed Nov. 8, 2006, titled “Information Relating to Orthogonal Dimension Barrage Relay”, Attorney Docket No. 020945-002600US, the disclosures of which are hereby incorporated by reference in their entirety.

BACKGROUND OF THE INVENTION

The present disclosure relates to a system and method capable of establishing efficient, robust, multi-hop cooperative routes in communication networks. The techniques disclosed are well-suited for conveying voice, streaming video and other delay-sensitive applications and more specifically in wireless ad hoc networks, by exploiting the concept of barrage relay, thus bypassing the need for carrier sensing and collision avoidance for multiple-access purposes or the creation and use of connectivity tables at each node for routing purposes. In at least one embodiment, these techniques may be used to form a novel, unicast, reactive route-establishment protocol in mobile ad-hoc networks (“MANETs”).

The theory and practice of MANETs has witnessed great interest recently, spurred by applications in the tactical-radio space and related commercial endeavors. However, the development of effective and scalable solutions that satisfy rapid-relaying and routing requirements for streaming and other delay-sensitive, QoS-demanding applications in MANETs has lagged behind, primarily due to the harsh terrestrial propagation, uncertain network topology from node mobility and unreliable links, total lack of infrastructure, large number of hops required for end-to-end connectivity, and so on.

Designed-based problems associated with known MANET techniques include the deficiency in channel accessing and route establishment brought about by the use of classic protocols originally destined for wireless LAN's or cellular networks of the 2nd and 3rd Generation, protocols that simply don't lend themselves to use in the current environment because of their emphasis on process re-initiation at every hop (link). This negative situation has led to calls for new architectures and paradigm shifts in network-protocol-stack design for MANETs [R. Ramanathan, “Challenges: A Radically New Architecture for Next Generation Mobile Ad Hoc Networks,” Proc. ACM/IEEE Int'l Conf. Mobile Comp. and Networking, Cologne, Germany, August 2005, pp. 132-139]. The present disclosure can be viewed as a practical way to affect such a quantum step in designing, implementing, testing and deploying processes and protocols that are particularly well-suited to MANET's and outperform classic solutions by orders of magnitude in latency, throughput, scalability and the like.

As a first step in alleviating these problems and revisiting the MANET networking problem ab initio, U.S. patent application Ser. No. 11/833,113 (discussed above) introduced the concept of barrage relay as a way for multiple network nodes to access the various wireless links in a manner that is delay-efficient, enhances the Signal-to-Noise (SNR) of each packet reception per node and circumvents the problem of packet collisions inherent in classic multiple-access schemes. The techniques of barrage relay are adopted as an underlying mechanism for the current proposition of robust collective route establishment. Thus, the present disclosure results in a substantial modification of the heretofore known, classic PHY transmission/reception mechanisms by exploiting the straightforward and efficient form of autonomously decided, decentralized, minimum-latency transmission schemes and associated diversity-combining reception schemes collectively known as “barrage relay”. It is noted that the “barrage-relay” concept of U.S. patent application Ser. No. 11/833,113 includes and combines the dual notions of “broadcasting by flooding” and of “cooperative diversity” of [S-Y Ni, Y-C Tseng, Y-S Chen and J-P Sheu, “The Broadcast Storm Problem in a Mobile Ad Hoc Network,” MobiCom, Seattle, Wash., 1999] and [D. K. Lee and K. M. Chugg, “Pragmatic Cooperative Diversity Communications,” Proc. IEEE Military Comm. Conf., Washington, D.C., October 2006], respectively, along with unique relaying logic performed by each node. The routing protocol proposed herein harnesses these advantages in a unique way so as to set up any desired cooperative route in a fast, robust and efficient way.

Due to this unique PHY-MAC combination, both U.S. patent application Ser. No. 11/833,113 as well as the present disclosure modify in a substantial way the logic behind the known link-access mechanisms such as Carrier-Sense Multiple Access/Collision Avoidance (CSMA/CA) to be found in, for example, the IEEE 802.11 family of standards (Wi-Fi), where nodes take turns in sending a packet and employ carrier sensing in order to avoid collisions. It does so by exploiting the PHY-layer ability to collect energy from multiple simultaneous (or near-simultaneous) identical packets, thus obviating the need for delaying transmissions and taking turns for fear of collisions at the link layer.

In addition, the present disclosure differs in a substantial way from the heretofore known layer-3 routing schemes collectively known as “ad hoc routing protocols” [M. J. Lee, J. Zheng, X. Hu, H. Juan, C. Zhu, Y. Liu, J. S. Yoon, and T. N. Saadawi, “A New Taxonomy for Routing Algorithms for Wireless Mobile Ad Hoc Networks: The Component Approach,” IEEE Communications Magazine, vol. 46, pp. 116-123, November 2006] (a classic representative of which is, for instance, the Ad-hoc On-demand Distance Vector—AODV protocol for on-demand routing protocols presented at the MANET working group) by obviating the need to form connectivity tables at each node and thus greatly reducing the concomitant expenditure of network capacity in control signaling for forming and maintaining such.

The present disclosure thus effectively merges the PHY-MAC layer properties of autonomous transmission and cooperative-diversity reception inherent in the barrage-relay concept of U.S. patent application Ser. No. 11/833,113, along with a novel layer-2 routing (collective path-setting) mechanism presented herein, to arrive at an effective, reactive (on-demand), cross-layer optimized method for a joint PHY-MAC-routing protocol creation.

BRIEF SUMMARY OF THE INVENTION

In view of the forgoing background, a mechanism for setting up packet routing (called a “cooperative route” and defined below) between a source node and a destination node in an ad hoc network, via multiple cooperative paths existing and operating simultaneously in time, is presented according to at least one embodiment of the present invention.

As referred to here, a cooperative path is a collection of individual paths (in the graph-theoretic sense) between the source and the destination with relaying nodes arranged in layers or hops, and is uniquely characterized by the collection of relaying nodes which cooperate in the forwarding of each packet as well as the number of induced hops. Two such cooperative paths are called distinct if the two sets of nodes involved in the same layer index (i.e., of the same hop number) for the two cooperative paths under consideration are mutually exclusive. As referred to here, a cooperative route is the collection of all such distinct cooperative paths between a given source and a given destination. The above definitions are made clear in FIG. 1.

FIG. 1 illustrates a cooperative route between a source node (S) and a destination node (D) as a collection of distinct cooperative paths, in accordance with an embodiment of the present invention. Specifically, this figure shows three distinct cooperative paths between S and D, comprising a cooperative route between S and D. The numbers in cycles denote the respective layer index for the relaying nodes in each cooperative path. The upper cooperative path consists of three hops between S and D. The cooperative path below it consists of 4 hops between S and D, as does the bottom cooperative path, whereby cooperation between the two relaying nodes labeled “2” helps relay node numbered “3” receive the signal in either of these two cooperative paths.

According to an embodiment of the invention, the nodes of an ad hoc network under consideration transmit and receive according to techniques such as those disclosed in U.S. patent application Ser. No. 11/833,113 and do not need to form, maintain or update connectivity tables indicating the topology of neighboring nodes, the quality of the links connecting them, etc., as is customary in many other known ad hoc routing protocols. Therefore, each transmitting node is blind with respect to the existence of neighboring nodes or the quality of the intervening channel between itself and all other receiving nodes. Channel-state information is needed and autonomously derived in a cumulative sense at each receiving node; that is, estimation is needed of the total received channel from all transmitting nodes reaching the receiving node under consideration and not for each one channel individually, as described in detail in U.S. patent application Ser. No. 11/833,113, at paragraphs [0050] and [0051]. None of the transmitting or receiving nodes in the network needs to form, maintain or update connectivity tables with respect to neighboring nodes, or needs to maintain lists of temporary routes back to the source as, for example, the Ad-hoc On-demand Distance Vector (“AODV”) and Dynamic MANET On-demand (“DYMO”) routing protocols do.

A cooperative routing protocol is described below in accordance with a specific embodiment of the invention. In this protocol, the source broadcasts a Request-For-Route (RFR) packet, which then propagates throughout the ad hoc network according to a barrage relay as previously described.

This RFR packet includes: the source node's unique ID, the intended destination node's unique ID, a field acting as an RFR hop counter (RFR hops), indicating the distance of a node from the source measured in hops, and a route “width” parameter which is a non-negative integer N. The purpose of these parameters will be explained below in more detail.

This initial broadcast transmission of the RFR packet by the source node sets the value of the RFR hops number to one (or any other agreed-upon number). Any other node that receives the RFR packet successfully stores in memory this received RFR relay number, increments the “RFR relay number” field in the packet by one and re-transmits (broadcasts) the packet, as per the principles of the barrage relay as previously described. Note that multiple devices may (and typically will) be sending the same identical packet at approximately the same time and at the same medium allocation.

The destination node, upon reception of the RFR packet intended for it, may or may not relay this packet further.

When the destination node receives this RFR packet correctly (and identifies itself as the destination node), it sends out a Clear-To-Route (CTR) packet which additionally includes the Total RFR Relay Number (as formed up to this destination node) and a CTR relay number (CTR hops), indicating the distance of a node from the destination measured in hops, which it initially sets to one (or any other agreed-upon number). This initial CTR packet propagates in the ad hoc network according to the barrage-relay principles.

Any intermediate relay node that receives and demodulates/decodes this CTR packet successfully stores in memory this received CTR relay number, recalls the previously stored RFR relay number and performs a logical operation which allows it to assess whether it is on the desired routing path for this particular (source, destination) pair or not. This assessment will, in turn, determine whether this node will participate in relaying any routed packet between these two specific nodes (source and destination) until the packet transport is terminated or a time-out occurs.

If a node has not received either the RFR or the CTR packets it does not participate in the said calculation and the respective route.

This logic operation is controlled by a threshold value which includes the aforementioned route width parameter N. This number N may be set to be common throughout the network or may vary with the {source, destination} pair ID's or even vary with the CTR of individual packets (thus setting up a prioritization mechanism).

If the logic operation discussed above determines that a specific node should be on a collective route for a {path, destination} pair and thus should become a relay node for that route, then the node will increment the “CTR relay number” field in the packet by one and will re-transmit (broadcast) the CTR packet, as per the principles of barrage relay.

If, upon receiving both the RFR and CTR packets, the logic operation discussed above determines that a specific node should not be on a collective route for a {path, destination} pair, then the node will act as a sentry and not relay the CTR packet further. Notice that because the CTR is not further relayed by the sentry nodes, the CTR does not propagate through the network beyond the barrier established by the said sentries.

In a further embodiment of this disclosure, the assignment of the role of “sentry” to additional nodes (beyond those described by the logic operation above) for any particular route is achieved via the transmission by the destination node of an additional packet, called a “sentry” packet, which assigns this role to nodes receiving this packet only and no other packet (RFR or CTR).

In a further embodiment of this disclosure, the destination node waits for a pre-specified number of time slots before transmitting a CTR packet (after receiving the associated RFR packet) in order for potential RFR/CTR packet collisions to be avoided at an intermediate relay node.

In a further embodiment of this disclosure, the original source node waits for another pre-specified number of time slots before it starts actual data transmission on that established collective route.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a cooperative route between a source node (S) and a destination node (D) as a collection of distinct cooperative paths, in accordance with an embodiment of the present invention.

FIG. 2( a) illustrates a multi-node network with a source (S), a destination (D), relay nodes (R), buffer nodes (B) and uninvolved nodes (U), for a setting of N=0, in accordance with an embodiment of the present invention.

FIG. 2( b) illustrates a multi-node network with a source (S), a destination (D), relay nodes (R), buffer nodes (B) and uninvolved nodes (U), for a setting of N=1, in accordance with an embodiment of the present invention.

FIG. 2( c) illustrate a multi-node network with a source (S), a destination (D), relay nodes (R), buffer nodes (B) and uninvolved nodes (U), for a setting of N=1, in accordance with an embodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

In this section we provide a detailed description of a protocol for establishing buffered unicast routes in a barrage relay network, according a specific embodiment of the present invention. Whenever a source node wishes to establish a (unicast) route to some destination node, this source node broadcasts a RFR packet (packet) that contains a hop counter in barrage-relay fashion, so that every listening (relayed to and possibly relaying) node eventually learns its distance to the source (in hops); no more information is retained by the node for the time being. Upon reception of the RFR packet, the destination broadcasts a CTR packet (packet) that contains a second hop counter, so that every listening node eventually learns its distance to the destination (included in this CTR packet is the source-destination total hop distance). Following this procedure, nodes can ascertain whether they are on some cooperative path between the source and destination nodes. Such nodes then become relays for a subsequent unicast flow. Nodes that are adjacent to the flow—also ascertained from the RFR/CTR packets—become buffers (or sentries) for the flow, effectively separating the flow from the rest of the network and possibly enabling the existence of multiple concurrent flows.

According to the present embodiment of the invention, any network node can be in one of five states with respect to a given buffered unicast flow:

(a) Source node (S): it is the node originating a request for a route to a given destination

(b) Destination node (D): the destination node is the intended recipient of the data from the source and does not relay received data.

(c) Relay node (R): the Relay nodes in the present disclosure relay packets as per the barrage-relay principle at a proper time slot after they are received for the very first time (and are otherwise ignored).

(d) Buffer nodes (B): Buffer nodes in the present disclosure serve to contain the flow. Buffer nodes do not relay any received packets (whether from inside or outside the flow).

(e) Uninvolved nodes (U): Any node outside a buffered unicast flow is uninvolved and can, therefore, participate in a different concurrent flow.

The role of the buffered unicast route establishment protocol is simply to assign each node in the network to a given state as described above (with respect to a specific flow). FIGS. 2 a, 2 b and 2 c depict such assignments in sample networks after applying the protocol described below. FIG. 2( a) illustrates a multi-node network with a source (S), a destination (D), relay nodes (R), buffer nodes (B) and uninvolved nodes (U), for a setting of N=0. FIG. 2( b) illustrates a multi-node network with a source (S), a destination (D), relay nodes (R), buffer nodes (B) and uninvolved nodes (U), for a setting of N=1. FIG. 2( c) illustrate a multi-node network with a source (S), a destination (D), relay nodes (R), buffer nodes (B) and uninvolved nodes (U), for a setting of N=1.

Here, the protocol utilizes up to three types of packets (packets) in order to achieve this assignment:

(a) Request-For-Route (RFR) packet which contains four fields: (a.1) a unique Identifier (ID) for the source node, (a.2) an ID for the destination node, (a.3) the desired route width parameter, N, and (a.4) an RFR hop counter (RFR_Hops) that counts the number of hops from the source.

(b) Clear-To-Route (CTR) packet which contains five fields: (b.1) source ID, (b.2) destination ID, (b.3) route width parameter, N, (b.4) a CTR hop counter (CTR_Hops) that counts the number of hops from the destination, and (b.5) the total number of hops (Total RFR Relay Number) from the source to the destination.

(c) Buffer (BUF) packet: A BUF packet contains two fields: (c.1) source ID, and

(c.2) destination ID.

In another embodiment of the invention, the protocol utilizes the RFR and the CTR packets described above but not the BUF packet. The buffer nodes B are inferred directly from the two aforementioned packets and the information they contain once they get relayed.

According to an embodiment of the invention, the route width parameter N is a non-negative integer included with the RFR and/or CTR packets to enable the inclusion of relay nodes that are not on a shortest path (minimum number of hops needed) between the source and destination. Specifically, nodes on paths that are no more than N hops longer than the shortest path are included as relay nodes in the cooperative route between source and destination.

According to a further embodiment of the invention, the route width parameter N is known by all nodes in the network prior to transmission of RFR and CTR packets (in other words, it is set prior to network deployment).

The buffered unicast route establishment protocol of the present embodiment proceeds as follows: the source node broadcasts an RFR packet with RFR_Hops=1 plus the source ID, destination ID, and route width fields set appropriately.

Upon receiving an RFR packet (for the first time only), a node stores the received number RFR_Hops as Stored_RFR_Hops and then relays an RFR packet with an incremented (by one) RFR hop count.

Upon receiving an RFR packet (for the first time only), the desired destination node stores the received RFR_Hops value as Total_RFR Relay_Number and then transmits a CTR packet, which contains the number CTR_Hops set to one, the above-mentioned Total_RFR_Relay_Number, the source ID, the destination ID, and route width parameter fields set as in the received RFR packet.

Upon receiving a CTR packet (for the first time only), a node stores the two numbers: the contained Total_RFR_Relay_Number and the CTR_Hops number which it stores as Stored_CTR_Hops. It then checks to see if it has received a corresponding RFR packet with the same {source, destination} pair ID's.

If the node has not received the corresponding RFR packet with the same {source, destination} pair ID's at some previous time, it takes no further action.

If the node has received the corresponding RFR packet with the same {source, destination} pair ID's at some previous time, it recalls from memory the Stored_RFR_Hops number, the Stored_CTR_Hops number, the Total_RFR_Relay_Number and the route width parameter N, all corresponding to the same {source, destination} pair ID's.

Based on the above-mentioned numbers, the node performs a logic operation to determine whether it is on the collective route for this particular {source, destination} pair. The current disclosure will provide below a specific instantiation of this logic as an example. However, any other logic operation that arrives at the same conclusion, namely whether a node is or is not or the collective route for an given {source, destination} pair, is covered by the disclosure.

As an example of a logic operation mentioned above, the node may perform the following comparison:

If

Stored_RFR_Hops+Stored_CTR_Hops≦Total_RFR Relay_Number+N

then this node is on the collective route path for the said pair. If the above inequality is not satisfied, then this node is not on the collective route path for the said pair but, instead, acts as a buffer node and does not relay the CTR packet further.

If, as per the above inequality, the node decides that it is on the collective route path for the said pair, then the node relays the CTR packet with the CTR_Hops number incremented by one.

Upon receiving a CTR packet, the source node commences sending the message data along the established collective route to the destination.

In another embodiment of the disclosure, upon receiving a CTR packet, the source node waits a pre-specified time interval before it commences sending the message data along the established collective route to the destination.

In another embodiment of the disclosure, upon receiving a RFR packet, the destination node waits a pre-specified time interval (different, in general, from the waiting period of the source mentioned above) before it transmits the CTR packet.

In another embodiment of the disclosure, upon receiving an RFR packet (for the first time only), the desired destination node stores the received RFR_Hops value as Total_RFR Relay_Number and then transmits a CTR packet, as described above, plus another buffer packet BUF as described in paragraph [0034 (c)]. The BUF packet is sent an appropriate time after the RFR packet has been received. Any node that receives the BUF packet only also becomes a buffer node. When the source receives a CTR packet, it waits for a proper period and then broadcasts a BUF packet as described above.

Note that the RFR messages that are part of the presently disclosed buffered unicast route establishment protocol flood the network. These RFR messages will propagate quickly through the network and, therefore, not contribute significantly to network overhead. On the other hand, the CTR messages are confined to the resulting collective route only.

FIGS. 2( a) and 2(b) illustrate the buffered unicast route established between a given source (S) and a destination node (D) for routes with N=0 and N=1, respectively. Relay, buffer, and uninvolved nodes are all appropriately marked. Note that when the route width parameter is increased from N=0 to N=1, the number of relay nodes increases. The addition of such nodes can improve robustness to node mobility or link failure. The highest value of N that the network can utilize depends on other factors, such as the time-slot reuse pattern.

FIG. 2( c) demonstrates the impact of transmitting BUF packets at the source and destination. Specifically, it illustrates the route that results when N=0 and BUF packet transmission is not included in the protocol. In this case, there are nodes adjacent to the source that are not adjacent to any relay nodes and, therefore, do not receive a CTR packet. The lowest node of the network adjacent to the destination in FIG. 2( c) fails to receive a CTR packet due to a collision between the CTR packet transmitted by the source and a delayed RFR packet transmitted by one of its neighbors and thus acts as uninvolved as opposed to buffer node. 

1. A method for establishing relayed communications between a source node and destination node in a wireless network of nodes, the method comprising: sending a request message from the source node to the destination node through a plurality of intermediate nodes, each of the plurality of intermediate nodes relaying the request message by receiving the request message and re-transmitting the request message, each of the plurality of intermediate nodes being capable of receiving the request message as transmitted from more than one of the other intermediate nodes; receiving the request message at the destination node; in response to receiving the request message at the destination node, sending an acceptance message from the destination node to the source node through at least a subset of the intermediate nodes, each of the subset of intermediate nodes relaying the acceptance message by receiving the acceptance message and re-transmitting the acceptance message, each of the subset of intermediate nodes being capable of receiving the acceptance message as transmitted from more than one other node in the subset of intermediate nodes; and after the acceptance message is received at the source node, sending a data message between the source node and the destination node through at least the subset of intermediate nodes, each of the subset of intermediate nodes relaying the data message by receiving the data message and re-transmitting the data message, each of the subset of intermediate nodes being capable of receiving the data message as transmitted from more than one other node in the subset of intermediate nodes.
 2. The method of claim 1 wherein one or more of the intermediate nodes relays the request message by receiving the request message, incrementing a request hop count included as part of the request message, and re-transmitting the request message.
 3. The method of claim 1 wherein one or more of the intermediate nodes relays the acceptance message by receiving the acceptance message, incrementing an acceptance hop count included as part of the acceptance message, and re-transmitting the acceptance message.
 4. The method of claim 1 wherein one or more of the intermediate nodes determines, based on the request message and the acceptance message as received by the intermediate node, whether to participate in the relaying of data messages between the source node and the destination node.
 5. The method of claim 4, wherein the intermediate node examines the request message to obtain a request hop count indicative of number of hops from the source node to the intermediate node, wherein the intermediate node examines the acceptance message to obtain an acceptance hop count indicative of number of hops from the destination node to the intermediate node, and wherein the intermediate node determines whether to participate in the relaying of data messages between the source node and the destination node based on the request hop count and the acceptance hop count.
 6. The method of claim 5 wherein the intermediate node compares (1) a sum obtained by combining the request hop count and the acceptance hop count and (2) a total hop number representing a minimum number of hops between the source node and the destination node, to determine whether to participate in the relaying of data messages between the source node and the destination node.
 7. The method of claim 6 wherein the total hop number is determined at the destination node and included as part of the acceptance message sent from the destination node.
 8. The method of claim 6 wherein if the sum does not exceed the total hop number by a route width parameter, N, wherein N is a non-negative integer transmitted in the RFR packet, the CTR packet, or both, then the intermediate node does participate in the relaying of data messages between the source node and the destination node.
 9. The method of claim 8 wherein the route width parameter, N, is known by all nodes in the network prior to transmission of either the RFR or CTR packet.
 10. The method of claim 4 wherein if the intermediate node makes a determination to not participate in such relaying of data messages, the intermediate node abstains from relaying the acceptance message.
 11. The method of claim 4 wherein if the intermediate node makes a determination to not participate in such relaying of data messages, the intermediate node serves as a buffer node that does not participate in the relaying of data messages between the source node and the destination node.
 12. The method of claim 1 wherein after receiving the request message, the destination node waits a specified period of time and then sends the acceptance message.
 13. The method of claim 1 wherein after receiving the acceptance message, the source node waits a specified period of time and then sends the data message.
 14. The method of claim 1, wherein after receiving the request message, the destination node sends out a buffer message; and wherein nodes in the network that receive the buffer message but do not receive the request message serve as buffer nodes that do not participate in the relaying of data messages between the source node and the destination node.
 15. The method of claim 14 wherein after receiving the request message, the destination node waits a specified period of time and then sends out the buffer message.
 16. The method of claim 1, wherein after receiving the acceptance message, the source node sends out a buffer message; and wherein nodes in the network that receive the buffer message but do not receive the acceptance message serve as buffer nodes that do not participate in the relaying of data messages between the source node and the destination node.
 17. The method of claim 16 wherein after receiving the acceptance message, the source node waits a specified period of time and then sends out the buffer message.
 18. The method of claim 1 wherein the request message comprises (a) an identifier for the source node, (b) an identifier for the destination node, and (c) a request hop count representing number of hops the request message has experienced after being sent from the source node.
 19. The method of claim 1 wherein the acceptance message comprises (a) an identifier for the source node, (b) an identifier for the destination node, (c) an acceptance hop count representing number of hops the acceptance message has experienced after being sent from the destination node, and (d) a total hop number representing a minimum number of hops between the source node and the destination node.
 20. The method of claim 1 wherein the data message comprises (a) an identifier for the source node and (b) an identifier for the destination node.
 21. A system for establishing relayed communications in a wireless network of nodes comprising: a source node; a destination node; a plurality of intermediate nodes; wherein the source node is capable of sending a request message to the destination node through the plurality of intermediate nodes, each of the plurality of intermediate nodes relaying the request message by receiving the request message and re-transmitting the request message, each of the plurality of intermediate nodes being capable of receiving the request message as transmitted from more than one of the other intermediate nodes; wherein the destination node is capable of receiving the request message and, in response to receiving the request message, sending an acceptance message to the source node through at least a subset of the intermediate nodes, each of the subset of intermediate nodes relaying the acceptance message by receiving the acceptance message and re-transmitting the acceptance message, each of the subset of intermediate nodes being capable of receiving the acceptance message as transmitted from more than one other node in the subset of intermediate nodes; and wherein after the acceptance message is received at the source node, the source node is capable of sending a data message to the destination node through at least the subset of intermediate nodes, each of the subset of intermediate nodes relaying the data message by receiving the data message and re-transmitting the data message, each of the subset of intermediate nodes being capable of receiving the data message as transmitted from more than one other node in the subset of intermediate nodes.
 22. The system of claim 21 wherein one or more of the intermediate nodes is capable of relaying the request message by receiving the request message, incrementing a request hop count included as part of the request message, and re-transmitting the request message.
 23. The system of claim 21 wherein one or more of the intermediate nodes is capable of relaying the acceptance message by receiving the acceptance message, incrementing an acceptance hop count included as part of the acceptance message, and re-transmitting the acceptance message.
 24. The system of claim 21 wherein one or more of the intermediate nodes is adapted to determine, based on the request message and the acceptance message as received by the intermediate node, whether to participate in the relaying of data messages between the source node and the destination node.
 25. The system of claim 24, wherein the intermediate node is adapted to examine the request message to obtain a request hop count indicative of number of hops from the source node to the intermediate node, wherein the intermediate node is adapted to examine the acceptance message to obtain an acceptance hop count indicative of number of hops from the destination node to the intermediate node, and wherein the intermediate node is adapted to determine whether to participate in the relaying of data messages between the source node and the destination node based on the request hop count and the acceptance hop count.
 26. The system of claim 25 wherein the intermediate node is adapted to compare (1) a sum obtained by combining the request hop count and the acceptance hop count and (2) a total hop number representing a minimum number of hops between the source node and the destination node, to determine whether to participate in the relaying of data messages between the source node and the destination node.
 27. The system of claim 26 wherein the total hop number is determined at the destination node and included as part of the acceptance message sent from the destination node.
 28. The system of claim 26 wherein if the sum does not exceed the total hop number by a route width parameter, N, wherein N is a non-negative integer transmitted in the RFR packet, the CTR packet, or both, then the intermediate node does participate in the relaying of data messages between the source node and the destination node.
 29. The system of claim 28 wherein the route width parameter, N, is known by all nodes in the network prior to transmission of either the RFR or CTR packet.
 30. The system of claim 24 wherein if the intermediate node makes a determination to not participate in such relaying of data messages, the intermediate node abstains from relaying the acceptance message.
 31. The system of claim 24 wherein if the intermediate node makes a determination to not participate in such relaying of data messages, the intermediate node serves as a buffer node that does not participate in the relaying of data messages between the source node and the destination node.
 32. The system of claim 21 wherein after receiving the request message, the destination node is configured to wait a specified period of time and then send the acceptance message.
 33. The system of claim 21 wherein after receiving the acceptance message, the source node is configured to wait a specified period of time and then send the data message.
 34. The system of claim 21, wherein after receiving the request message, the destination node is adapted to send out a buffer message; and wherein nodes in the network that receive the buffer message but do not receive the request message serve as buffer nodes that do not participate in the relaying of data messages between the source node and the destination node.
 35. The system of claim 34 wherein after receiving the request message, the destination node is configured to wait a specified period of time and then send out the buffer message.
 36. The system of claim 21, wherein after receiving the acceptance message, the source node is adapted to send out a buffer message; and wherein nodes in the network that receive the buffer message but do not receive the acceptance message serve as buffer nodes that do not participate in the relaying of data messages between the source node and the destination node.
 37. The system of claim 36 wherein after receiving the acceptance message, the source node is configured to wait a specified period of time and then send out the buffer message.
 38. The system of claim 21 wherein the request message comprises (a) an identifier for the source node, (b) an identifier for the destination node, and (c) a request hop count representing number of hops the request message has experienced after being sent from the source node.
 39. The system of claim 21 wherein the acceptance message comprises (a) an identifier for the source node, (b) an identifier for the destination node, (c) an acceptance hop count representing number of hops the acceptance message has experienced after being sent from the destination node, and (d) a total hop number representing a minimum number of hops between the source node and the destination node.
 40. The system of claim 21 wherein the data message comprises (a) an identifier for the source node and (b) an identifier for the destination node. 